package com.common.lang;

import cn.hutool.core.util.StrUtil;
import com.common.comm.ResultEnum;
import com.common.comm.ResultEnumInterface;
import com.common.exception.CommException;

/**
 * @author ZhangHaiWen
 * @title: Assert
 * @projectName minipasscheck
 * @description: 断言
 * @date 2021/1/199:25
 */
public class Assert {

    /**
     　　* @description: 请求参数为空断言 返回文本类型 [参数{}不能为空，"a"]
     　　* @param [object, errorMsgTemplate, params "a"]
     　　* @return {@link T}
     　　* @throws CommException 返回自定义异常
     　　* @author ZhangHaiWen
     　　* @version 2.0
     　　* @date 2021/1/19 9:28
     　　*/
    public static <T> T notNull(T object, ResultEnumInterface resultEnumInterface) throws IllegalArgumentException {
        if (object == null) {
            throw new CommException(resultEnumInterface);
        }
        return object;
    }

    /**
     　　* @description: 请求参数为空断言 返回文本类型 [参数{}不能为空，"a"]
     　　* @param [object, errorMsgTemplate, params "a"]
     　　* @return {@link T}
     　　* @throws CommException 返回自定义异常
     　　* @author ZhangHaiWen
     　　* @version 2.0
     　　* @date 2021/1/19 9:28
     　　*/
    public static <T> T notNull(T object, String errorMsgTemplate, Object... params) throws IllegalArgumentException {
        if (object == null) {
            throw new CommException(406,StrUtil.format(errorMsgTemplate,params));
        }
        if( object instanceof String){
            if(StrUtil.isBlank(String.valueOf(object))){
                throw new CommException(406,StrUtil.format(errorMsgTemplate,params));
            }
        }
        return object;
    }

}
